Unfortunately, we do not support public side personalization out of the box yet, so here are couple of suggestions that come to my mind.
You can create a top level page for each of the companies. On the first page, after users log in, you would redirect them to one of these "company homepages". Of course, you would need to make sure that your navigation starts from 2nd level (so that the top level pages don't get displayed in the menus).
As for modules, you can create a new provider for each company. Sitefinity supports multiple providers, so you would have no problems there. All you need to do is copy the existing provider, change the name of the provider and change the name of application (you can leave the connection name same if it's ok to store the data of all companies to one database or you can even set it up so that each company has its own database).
Finally, when you are setting up pages, make sure that public controls that are using modules data have appropriate provider name. So for example NewsList control of company B has provider name "NewsProviderCompanyB", which NewsList control of company C has provider name "NewsProviderCompanyC".
I hope this helps you get started. Let me know if you need more detailed instructions.
All the best,
the Telerik team