I don't know if this will solve your problem, but it knocked a whole hour off my sync times.
When you sync, iTunes sends info to Apple and the Apple servers can apparently slow down the completion of the sync as iTunes has to wait for them.
I don't take credit for this find but I can't find the original web page where I found the solution. Here's what you need to do:
Reset Warnings for your iPhone. Right click it under Devices and choose 'Reset Warnings.
Now, when you sync, you'll see this:
Uncheck 'Do Not Ask Me Again' and click 'Don't Send'.
Now your sync time should be shortened (at least, mine is).
For some reason, if you do not uncheck 'Don't ask me again', it won't work on subsequent syncs, so you need to do this each time the box pops up. But it's still a lot quicker.
Let me know if it works for you.