I'm wondering if it is possible for Marketo to sync someone over as a new 'lead' when they fill out a form or engage in another activity when there is already a 'contact' record of them in Salesforce?
Marketo's native behaviour upon form fill is upsert, but you can force create a record with a webhook to a handler that submits the lead data using REST API
You do not need this. Just sync to SFDC and assign the contact to a lead queue and this will create a new lead.
It's really not recommended, though.