This is not something that Toolset can help with, it basically has no control or management features over downloaded data (which generally is a ZIP file residing somewhere on the server, and when called a web browser native feature makes it downloading)
One way I see to do this, using Toolset, could be to use Toolset to produce the list of downloadable goods, that's where the user clicks on, to get data.
If I now append some sort of URL parameter to the actual link (I can do this in the View loop, for example), I could use a Cookie, let's say, or else mechanism to update either the user, or the file's metadata with that track, or maybe even a custom database table, or print it to a CSV or else
But this requires things that Toolset or even WordPress doesn't include and is also a challenge with modern data protection rules.
Yes, you could use Toolset to let users access only that downloadable area, that is done with Access, but again here you could not track who accesses, or who downloads/clicks where
These are quite sophisticated mechanisms, and as said also a legislative concern, that is probably why you can't find many (if any) software on WordPress allowing all of these features.
These seem to be a few solutions:
hidden link
Now, related to your client's first request, please check out this:
https://toolset.com/forums/topic/grant-revoke-access-to-image-visibility-based-on-user/page/2/#post-1489243
It's what you mention, a rudimentary implementation of controls where an admin can set the specific Images to share with specific users.
Maybe that helps?