Greg McKaskle addressed some of your questions about hardware timimg in your other post
here. If you have something like a DAQ board, you use the board's timing circuitry to generate a very precise signal. You program it and just let it run. An exteranl instrument like a function generator can do the same sort of thing.
The software timing issue arises because an OS like Windows, is usually trying to do a lot of different things in the background. A program like Microsoft FindFast will start and slow another application down. A user trying to start some application or even just
clicking with the mouse will briefly interupt all other programs. LabVIEW RT works great because it runs on dedicated hardware and there is no interaction with the OS. Some people of removed components from the OS to minimize the operations or used dual processor systems. It really all depends on your exact timing requirements. If you want to run at 400 Hz +/- 50%, then a software approach might work. If you really need 400 Hz +/- .01%, then look at providing the timing with hardware.