Hello,
I propose implementation in C++ with use of Qt libraries. The hardest part in your project is to track/monitor files which are downloaded by browsers.
I see two possibilities here:
1) track file creation events on hard drive (may not work properly on some Windows versions or may be very slow)
2) track file creation events in certain directories (for example "Downloads" dir in user profile and temp directory)
In both options, I would use ADS (Alternate Data Stream) to verify that the file comes from the Internet, then check against extension blacklist - and if there is a hit, remove the file and display message of your choice.
"Run" and system restore enable/disable feature would require manipulation of Windows registry (application will have to run as administrator). I can not guarantee that application will not be reported by any of antivirus software (there is a lot of them!), especially because it would perform invasive operations, and minimal operating system would be Windows XP SP3. Other requirements are OK.