Blob storage allows you to create an unlimited number of containers (within the 500TB storage account limit).
Assuming companies have (or create) the proper tools to upload/download documents to Blob storage, you may provide access to a container via a Shared Access Signature that allows read/list/write access. And as long as you don't give out the actual storage account keys (which provide access to the entire storage account), the client will only have access to that particular container.
Just remember that, taking this approach, your storage account is now being directly manipulated by others. Without some type of front-end application in front of your storage account, you'll have no ability to limit any type of use by your clients.
Also: You cannot simply expire a Shared Access Signature. Once a URL is given out, it will be valid until the expiry time (or if you regenerate storage account keys, which breaks all URLs). To have the ability to programmatically modify/revoke access, you'd need to use a Stored Access Policy.