You cannot rely on software timer to guarantee constant pace under windows, especially with so short times as you request.
To obtain a timed acquisition with a daq card you can rely on internal timing hardware, setting up a continuous acquisition at 500 sample/sec rate.
In case you need to acquire a specified amount of time and you can manage measures after acquisition is ended you can look at buffered acquisition functions; in case you need manage measures while acquisition is in progress you should use double-buffered acquisition.
In any case take a look at the examples shipped with ni-daq: they can give you a framework with which to customize your application.
Hope this helps
Roberto