Getting millisecond accuracy is pretty tricky business,
and you might be better off with a professional package
designed for this kind of thing. I work in a linguistics
lab (phonetics), and we use E-Prime from
pstnet.com.
It's designed for use with Windows.
Even if you don't want to use E-Prime, their documentation
has some nice discussion of the kinds of technical
problems you need to address in a Windows environment
for getting millisecond accuracy. Maybe Time::HiRes addresses
all these problems already.