Windows time always a few seconds off (w32time), compared to Linux ntp

Solution 1:

You are already running Linux.
Setup one of your Linux machines as a NTP server.
Point the Windows time-service to that. (Use w32tm on the commandline to configure the Windows time-service. It is very well hidden.)
Actually... Just using 2 or more time-servers on the Internet simultaneously (you can use a list) will probably already improve things.

That will get you closer, but still not as good as you will see on Linux. That is because Windows doesn't seem to account for natural clock-skew as good as Linux does and Windows pulls time-updates less frequently than Linux does. This makes a Windows computer deviate faster, especially if the internal clock on the motherboard isn't very accurate to begin with. (Most aren't.)

If you want to do better install a proper NTP client on Windows. There are several Open Source NTP clients available. And just about any of those will be better than the Windows build-in one.

If you want the best possible accuracy you can buy a USB dongle (or PCI(e) card) that has a build-in radio-receiver for the time-signals broadcast by various reference clock systems all over the world.