NTP is generally considered good for small single-bit ms in this situation.
After it has been running for several days, there really shouldn't be a lot of jitter in any of the actual hours, because ntpd implements a bunch of very long-term filtering.
However, you really do not say how you measure time, and any mechanism that you use can be as unstable as (if not more) basic synchronization.
If you have a busy network and network cards with really deep buffering, this may not help, since there will be more jitter between the arrival of the packet and the interrupt service. Itβs better if you switch to an Ethernet switch, all the worse because old-fashioned hubs are better for synchronization than switches in this regard.
source share