Thanks for your input. I decided to do a test, too, and I found out that wherever the GetDRO function pulls its data from is only updated at about 12Hz. I configured the HighSpeedUpdate to be 100Hz and then called GetDRO after which I logged the data. At 100Hz I would just get 9 of the same readings in a row, but the machine was smoothly jogging at the same time. If Mach is pulsing the parallel outputs it must know how many pulses its doing (since it is so darn precise), so it seems like I should be able to get at it. 12Hz is just a little too slow for a nice GUI update rate.
If anybody has any great ideas, please let me know, I'm willing to experiment.