Disclaimer: I'm not a Sysadmin and I'm especially not a Windows/Active Directory sysadmin. From what I've know, there is some overlap between this and the AD stuff (in the sense that the DC also provides time info AFAIK, so please also check that possibility if it applies). As always, feedback is welcome.
Setting up NTP under Windows if you want to use a different server than the one provided by MS can be rather tricky. I've managed to do it via the following steps:
Ensure that you have the correct time zone set. You can do this either via the control panel or via the command line the following way (of course, change the string as necessary):
control.exe timedate.cpl,,/Z (GMT+02:00) Athens, Bucharest, Istanbul
Set the NTP server:
net time /setsntp:ntp.example.com
Make sure that the w32time service is started at system startup. Attention to the space after the equals (=) sign! Due to some dubious reasons, the sc programs needs it that way:
sc config w32time start= auto
Restart the service and it should automatically synch:
net stop w32time net start w32time w32tm /resync /nowait
If you are still having problems (firewalls filtering packets, etc) you may want to try doing a traffic capture with Wireshark (with a filter like "port 123" - because port 123 is for NTP) and analyze it (are packets being sent? are packets being received?).
Update: I've seen a Word document floating around the Internet which describes a lot of possible problems and their solutions with the w32time/NTP service, but I just can't seem to find it any more. If somebody could put provide the link to it, I would be grateful (since it provides much more detailed info than this short post).