Yes, it's possible... but Spanning Sync isn't exactly expensive!
Here's how you do it.
First off, export your iCal calendars from iCal as a .ics file. Later on you will delete your local copies of the calendars these come from, so keep them safe until you are sure you have got it all running.
Now, go to your google calendar account, sign in, create a new calendar for each of your .ics files and go to the settings. Choose the calendar and import the correct .ics file for each. You may find one or two attempts are needed, but persevere, they do go in there eventually. Once done, you will have a copy of every calendar online in google, and all your original iCal calendars sitting nicely in iCal. The two are not yet linked together.
Next, download 'Calaboration' from here:
http://code.google.com/p/calaboration/
This small app will log you in to your google account and look for valid calendars to sync with your iCal. Quit iCal first, then run Calaboration. You will then need to re-start iCal.
When you start up, you'll see all of your online calendars appear one by one in their own groups... one calendar per group, unfortunately. You cannot change this, it is how it needs to be. If you are hoping to keep your nice neat calendar groups, think again!
You now have all of your ical calendars online in google, and syncing wiht ical too. Make an entry online and it will appear in ical. Make an entry in ical and it will appear online.
Now, to get it working with your iPhone, you have to download the google mobile apps from here
http://www.google.com/mobile/apple/.
Log in from the apps and you'll be able to read and edit your calendars from your phone too. Sadly, it doesn't use the nice iCal app in your iPhone, and does rely on an internet connection, but it is a pretty good system as it stands.
I can't wait for better calendar grouping, and the ability to read calendars offline on my phone using iCal app... but that appears to be a way off.