It's not "impossible", just not natively obvious. The solution I remember using is
0 * * * * foo()
0 * * * * sleep 30; foo()
It's not the prettiest but is a reasonable imitation of a 30 second cron.