Both the Open Source Edition of SugarCRM and Enterprise Edition of Salesforce.com support Web Service Interfaces, so the synchronization using Jitterbit is possible.
To synchronize using your custom fields you'll need to upload your enterprise WSDL from Salesforce and your SugarCRM WSDL into Jitterbit as the Jitterpak WSDL do not include your custom fields.
I would create a database with the following tables to manage the sync:
CREATE TABLE "SyncTable"
This table is used to match objectIDs between the systems. Searching on all objects for a particular module or object type in each system would populate this – for the sync I would only search on objects updated for that day to reduce the amount of data Jitterbit needs to process. The trick will be matching these objects. If they have identical names, then use ObjectName to match, otherwise you'll need to come up with a different set of fields.
You'll then need another table to store the field values from each system. I would use a field value pair table. E.g.
CREATE TABLE "ObjectFields"
You would use the data in these tables to drive Create/Update/Delete methods in both systems.
WRT how often to run the sync, that will depend on your requirements. You can schedule Jitterbit to initiate the synchronize and take into account how many objects are updated daily. If Jitterbit will need to process a lot of data, I would set the intervals further apart.