I've noticed the same thing happen on mission 2 in particular. I think the game gets a whole beat ahead of the music by the end of that mission.
I don't think it's really possible to sync the gameplay and music unless one actually affects the other. For instance, Mother 3 has the music follow the beat patten in-game. I think a more reasonable approach would be to have certain points where the game resets the beat by checking what timestamp it has made it to in the music.
Given this only happens with some tracks, I'd guess it has something to do with the tempo not matching up with the framerate of the game. Unless the BPM evenly divides 3000 (assuming a fixed update rate of 50), you'd need a different delay between each beat. Common tempos that fail this test are:
80, 84, 88, 92, 96, 104, 108, 112, 116, 126, 132, 138, 144
Edit: just checked. The offending song is 120 BPM. I have no idea what the problem is.