In this example, we have three Companies:
... and five products:
Sold Everywhere, Sold in USA and Canada, Sold in USA, Sold in Australia, Sold in USA and Australia.
First, create a custom field on the Product that you can use to store which Countries a given Product can be sold in. We will use the logic that if NO country is listed, it can be sold in ALL Countries.

(the yellow area is completed automatically for you by Odoo)
Then, add this field to the User Interface so you can start managing this relationship.

<page name="inventory" position="after">
<page name="countries" string="Allowed Companies">
<field name="x_company_ids"/>
</page>
</page>
Then, associate the Products with the Companies:


We now need a record rule that restricts the products seen. I would recommend only applying this record rule based on a specific group of users. Since the intention is to prevent Salespeople selling products, I would use one of the Sales Groups.

We also need a record rule that clears this restriction. I recommend setting up a separate group for users who are allowed to see all products.

This is what Users in the Sales Group will see when logged into USA:

This is what Users in the Sales Group will see when logged into Canada:

This is what Users in the Sales Group will see when logged into Australia:

\Ray Carnes response is the easyiest way to do it
Extremely useful. Thank you very much Ray.