Mach3's display only updates 10x per second. If you are doing this from a macro, it's often a good idea to wait 1/10-1/4 second before reading the DRO to make sure it's accurate.
If I had to guess, I'd say there's no way you can send 40 moves per second.
Remember, Mach3 is a buffered system. Meaning the current movement has already previously been sent to the ESS. So there is some delay built into the system.
There are a few things that the ESS can do in realtime, like monitor home switches, and probing inputs.
But I don't think there's any chance that it'll do what you want.