Is there anyway to disable network connections on 3G for some application? I want some applications connect to Internet only when wifi connection is available. How can I do that?
You can't, at least at user level. 

The App's Developer can, of course, detect if the device is connected either by WiFi or 3G, and act accordingly.