You can set them to run as agents but then you'll also lose the ability to use CMD + tab to access them. If you want to do that right click on the app and select Show Package Contents. Go into the Contents dir and open up Info.plist. Then you simply add another row and put "Application is agent (UIElement)" in the key. Value is YES/TRUE/1.
Note that I don't know if this breaks updates. Either way you'll have to redo it every time the app is updated.
I think this could quite possibly break the code signing for certain apps which would mean they'd always ask for firewall permission every time they're launched.