Yes, Nick, it's possible. You can add event receiver to list and override item added event. Using this way you can code any your logic. I need warn you about possible performance problem with uniqe permissions of each item. If you don't wory about performance problems (for example, where isn't a lot of items or users), then you can use event receivers. If you wory about performance, then you might think about creating lists or folders for each company.
MSDN: Using Event Receivers in SharePoint Foundation 2010