I'm sure that Sync works quite good on my S2...
Try this solution:
IMPORTANT: These steps below WILL DELETE ALL phone records from your phone, permanently
1. Turn off the “Sync Contacts” for your Google account (in Account page)
2. Go to your Applications page menu (swipe to the right for the ALL heading) then "Force Stop" the following: [Contacts] and [Contacts Storage] and [Google Contacts] and [Sync] and [Synchronize] ALL five (5) applications if you have them – “Clear Data” following each force stop
3. Re-boot your phone
4. Re-check “Sync Contacts” on your Google Account
Above SHOULD work. If not, you may try the below steps:---
1. through 3. above
(same procedure here) 4. Go to PC. Export all of "My Contacts" in Gmail to your PC as a Google CSV file. NOTE: Make sure you see the file.
5. (Still from PC) Delete all "My Contacts" in Google
6. Go to PC and Import the CSV file created at step 4. to your Google account
7. On phone in your Google account turn on Sync Contacts
Hope this is clear and works for you ?!