There is a saying: A man with a clock knows the time; a man with two clocks is forever uncertain...
There are a host of issues synchronizing deveices with milisecond accurracy: network latency, different per-device dates, different delays in devices starting these tasks... I'd suggest using Tim's method, but first
- poll the devices 2-3 times to find out a) their network latency, b) their local time
- poll the devices with a dummy task you want to execute (play a 0-length sound f.e. if you want to play sounds), and find out that delay
- send to each device its own time to start based on the above.