How would I be able to make it so that the song is synced for everyone at the same time?

When you join a game and a sound is already playing for some reason it will begin from the start.

I believe you can fix this by doing the following:

Play the song on the Server into workspace or replicatedstorage and save the TimePosition as an attribute. You can use a loop to do this throughout the song.

In a local script grab a reference to the sound (remember WaitForChild) and play it using the TimePosition attribute. Try this out.