Allow only specific apps to use cell data, only when on 3G I use Tasker to sync every 30 mins when on 3G. I'm on a limited data plan, and the only apps I use constantly are browser, a Twitter app (Echofon) and Whatsapp. Is there a way to allow only these apps when on cell data, and allow access to all on wifi, either with Tasker or otherwise?

I've seen similar questions here, but they're mostly outdated (pre ICS) and/or involve restricting access using DroidWall, which does not differentiate wifi and 3G.
I know of no way to restrict an app to the 3G network (as opposed to 2G/4G), but there are several solutions to restrict apps to either WiFi or mobile networks (or keep/allow them from/to both). Examples include DroidWall - Android Firewall1 (which you already mentioned, but which is discontinued), its successor AFWall+2, its fork Android Firewall3 (gone), and -- last but not least -- LBE Privacy Guard4 (no longer updated; go here for it's "big brother"'s English version). As below screenshots show, all four of them support separate settings per app for WiFi and mobile data respectively.

 

 

As the comments state, some of them might have issues (e.g. do not install LBE from the playstore if your device runs Android 4.1 or higher, as this will leave you with a boot loop -- check this XDA thread instead). But one of them should do for you, I hope.