Ah, I understand now. I doubt that a different defragmenter can do this. Most of them will just move all files down to the fast part of the disk. You have to exclude these files somehow.
MyDefrag has a FileLocation
file boolean which could be what you're looking for:
// Do not move files that are located in the last 20% of the volume
ExcludeFiles( FileLocation(EntireFile, VolumeSize * 0.8 / BytesPerCluster, 0) )
You can place that in the Settings.MyD file and MyDefrag will never touch files at the end of a volume.