I've had this problem with my iPhone 4s & it even had Apple so confused they replaced the phone thinking it may have been a hardware fault but the problem persisted with the new phone.
Anyway long story short as trust me the details & time taken are very boring... I narrowed it down to the file in the iTunes library folder called iTunes Library Extras.itdb
With iTunes off I moved this file out of the folder (& stored it safely as a precaution) then restarted iTunes.
On opening iTunes spawned a new copy of the file no problems. I plugged my iPhone in & every problem I've had (spinning 'beach-balls' after any action, causing iTunes to hang, not synching but appearing to do so & the alert 'The iPhone could not be synched because the synch session failed to start') was gone.
The phone now works perfectly when synching!
I hope this helps someone 🙂