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.

I'll second these concerns. Time::HiRes may be up to snuff on Win32 (I don't see why it wouldn't be since it uses XS) but I'd read the source and put it through some torture tests to be sure. And you could always write your own XS code to handle timing if you needed to. But in addition, I'd be concerned about the accuracy of measuring keypress times on a standard keyboard.

Incidentally, this looks like a good run-down of the commercial experimental psych packages, including E-Prime and others.

Went to join the gridlock to see it
Held an eclipse party
Watched a live feed
I cn"t see tge kwubosd to amswr thus
I tried to see it, but 8000 miles of rock got in the way
What eclipse?
Wanted to see it, but they wouldn't reschedule it
Read the book instead