Yes this is true.
We have had a few situations like this in the future. The way we have handled it is with a trigger in salesforce and some additional fields on the lead object in salesforce and Marketo.
You use these additional fields to capture the information required for the custom object in Marketo forms. Once the person fills out the form, you push the lead to SFDC immediately with a "fills out form" trigger campaign. The data arrives in SFDC and the trigger will detect the fields are not empty and will fire. The task of the trigger is to create the custom object instance and then clean the lead fields so that they can be sued again.
Gravity Forms offers the ability to send data to multiple APIs at once; for instance, if you turn on admin debug you can actually see Gravity Forms make the connection to both systems and send the relevant bits to each. And indeed, as Greg mentioned, you can't have Marketo write into SFDC custom objects without using a field change + Salesforce workflow/APEX trigger combination at a minimum—it's doable but annoying and actually might be overengineering in this case if you have a solution that works.
What concerns me, though, is you mentioning that your reason for removing Gravity (which seems to be working in your particular case) is due to frontend performance when a properly configured setup should have minimal issues as far as speed is concerned. :/ If you want to send me a message with your website, I'd be happy to take a look for free just to see if that's the core issue or if there's something else at play.
Rather than creating a field in Marketo for every field on the custom object, consider using a single Mkto textarea. You can store a very, very large number of fields as JSON text. It makes maintenance much easier and (to my mind) it is less clutter to have a single field used to transport all the data that's destined to go on the Partner object and has no meaning on the Lead. Of course you need some JS to make this work on the form but I think it's worth it.
Also, as kind of a left-field option, you don't have to use workflows/triggers to update the custom object: you can use a Marketo webhook to call the SFDC API. Depends on where your developers' skills/availability are strongest.