Have you tried using the Windows Defrag?
Accessories, System Tools, Disk Defragmenter?
It might still take a while though, and if its fully fragmented, it could take a couple of hours so just leave it over night and it'll be done.
I don't think there is a defragmentator that will only defrag a certain percent, stop, and then allow you to start again when you want. This would cause problems with the drive I would assume, and is just best to do it overnight when you probably wouldn't be using it.
It might also be best to go into safemode to run it to, to defrag better since less programs will be interfering with it:
To do this, just press F8 at startup once you reset and go to Safe Mode.
I hope this helps