Perhaps you can give MyDefrag a try (see http://www.mydefrag.com/
), the successor of JkDefrag. It is usually faster, but sometimes slower than JkDefrag. Other than that I guess you will just have to be patient. Assuming a harddisk speed of 40 megabytes per second, then reading 100 gigabytes of data will take 100000 / 40 = 2500 seconds (42 minutes). But MyDefrag has to do a lot more than just read the data, it also has to write the data, and update the MFT/FAT. And it may have to move data out of the way before it can place an item were it want's it to be. MyDefrag (and JkDefrag) will do things as efficiently as possible, with as little data movement as possible, but it will take a long time nonetheless.
p.s. You can use the computer and do other things while JkDefrag is running. You don't have to wait for it to finish.