Windows is not very well designed for this. If you need deterministic time performance, you probably need LabVIEW RT.
You can improve the situation somewhat by increasing the priority of your VI (VI properties..execution).
If you would upgrade to LabVIEW 7.1 you can also benefit from the new "timed loop" structure. It seems to work much more precisely for these kind of tasks, even at normal VI priority.
(btw, it is not clear why you use local variables and value property reads if a regular wire can do just fine. Wires are much more efficient. Also, why isn't there a while loop around the code so the code repeats? Are you by any chance using the run continously button to execute this?)