You have two choices. MPEG2VCR (
http://www.womble.com) has an option in the mux settings where you can move the sound forwards or backwards by specified amounts. This can fix a lot of sync problems. Some have claimed that it can't fix anything above 1 second off, but I fixed a 2 second sync problem with it recently. Another option is to use some kind of sound editor to shrink or expand your sound file to the right time and then remux. Lusifer has spoken a lot about this and may have some suggestions. MPEG2VCR is a great program, but it's very expensive

Good sound editors are expensive too
