This is possible, but not completely independently.
You need to have one primary mail provider which accepts all of your mail.
Then configure mailboxes there to forward emails to another account.
For example, set up company.com at Google, and a new domain, company.net at Microsoft.
Have Google forward all emails for firstname.lastname@example.org, to email@example.com.
Finally, set up the firstname.lastname@example.org account so it can send emails with the From address of "email@example.com".
The reason you have to do it this way, it the way email is routed around the internet.
Email routing is per-domain, with one or more mail servers listed in DNS as being responsible for email. However, in DNS you specify which of your mail servers has the highest priority, and which others should only be tried when the primary is unreachable.
Your secondary mail servers will then forward all mail received to the primary, which is responsible for putting email into a particular user's mailbox or forwarding it on to another address.
There is one alternative to this, if you're willing to run your own mail server:
You could conceivably run a mail server on your own network which accepts all of your email for company.com, and then routes mail for individual mailboxes to specific destinations (Google or Microsoft). However to the best of my knowledge, Google and Microsoft don't offer this solution for you so you'd have to run your own mail server to achieve it.