You want to leverage the security settings of the privilege set. Create a privilege set for a user.
Inside the set look at the record>custom options. select the table you want to control.
Go into Set privilege : View > imited and set the calculation to restrict to whatever you want
You might find it helpful to use Privilege Sets which can be assigned different levels of access to view/edit/delete records, and even down to fields according to a calculation you can create, e.g. if Privilege Set = 'Region 1 Group', then allow viewing/editing/deletion of records which have region field set to 'Region 1', but give no access otherwise...
You can think of a 'Privilege Set' as a group of users... Makes it easy to add/remove individual users from those groups, and if you need to change access settings for a group then those settings apply for all users in that group.
It takes a bit of working out how best to fit your requirements, but certainly using Privilege Sets is a good start....