You may also ask why you need this kind of resolution. Be aware that Windows systems (and probably Mac and Linux as well) are multi-tasking and have many active processes when can interrupt yours at any time. What this means is that something you thought should be occurring at neat 20ms intervals will do so for a few iterations, then suddenly give you a 500ms interval because an e-mail arrived. If you need millisecond accuracy on a non-RT system, you should ensure it happens in hardware and get the timestamps from hardware as well.
On the other hand, if you just need to know when things happened, the millisecond resolution will work quite well. There was a weird bug in LV8 (?) used on Pentium 4 (?) processors where the timestamps were always rounded to even millisecond multiples. I cannot remember the details, but you can probably find them by searching in this forum. There was a long thread on the subject.