I think you're right, this is really more of a Salesforce question. Eloqua will simply match to contacts already in Salesforce by email address. If Eloqua tries to publish a contact to Salesforce and there is no record in Salesforce with that email address, Eloqua will (by default) create a new lead, which then has to be converted to contact/account by hand.
You can customize the details of the way this works in Setup->Integration in Eloqua, but fundamentally the problem you have is how to match a contact to an account in Salesforce when all you have to go on is the company name. Eloqua can't relly help with that, it would have to be done within Salesforce. Once you have the contacts mapped correctly in Salesforce, the association will also work correctly in Eloqua (assuming a standard integration setup).
As far as I know there is no built-in functionality to make that easier. As Amr Hassan suggested, you may need an add-on of some kind.