Is there a way I can disable SuperFetch whenever my Windows 7 laptop is running on battery power, and reenable it when the laptop is plugged in to AC power?
You could write a service to detect when the power state changes and stop/start the service yourself. http://msdn.microsoft.com/en-us/library/bb968807%28v=VS.85%29.aspx This could be extended to other services you don't like (Indexing Service).
You could change the service to Manual start and have your application decide at boot time whether to start SuperFetch or not, so you don't get all the costs of pre-loading without any of the benefit (if you stop the service after it has preloaded the apps).
As far as I know, this is not possible by windows. You can simply create a batch or powershell script that enables/disables the service and run it manually.
To stop the service
To start it over
*You must run this as Administrator.