How to synchronize clocks for computers that are not online?

You will need to install a TimeServer on the same network. Now there are articles available to make a Windows 7 machine able to share time... but I am not sure. I know all Windows 2000+ Servers come with NTP enabled as standard and when you are in a domain it automatically uses the server's time across the domain.

Microsoft recommends using a dedicated time server, but that's like another machine.

There is however an option in the Group Policy Editor to enable the NTP server on Windows 7 - I found this... but nothing more.

Then each client needs its IP address for NTP changed to that machine, like [192.168.0.25].

Enter image description here

But also, if you have a dedicated "server" (not really a server, just the main computer) machine, that holds all the data for example. You could run a virtual machine with a damn small Linux distribution and setting up an NTP on it is as easy as using the native installer. These distributions are minute and use almost no memory or CPU, but can do a lot of impressive things if you research it a bit.

But the best solution is to install a Windows Server and put all the machines in a domain.

You can try Windows SBS Essentials, and it's very cheap too.