Anything can be done with enough development budget. But at that point, I think it would be a lot easier to spin this “sub-community” into another Discourse instance.
If you disable access to user profiles and the people in the walled community can post only in categories that are accessible only by those people, then you might not worry about who can PM who, since they won’t know who else to PM.
But if you really want them to not to be able to see each other, setting up a separate forum is probably easier.
Thanks everyone. It sounds like it’s probably best not to let this particular group of users into the forum in the first place, which is a shame but that’s compliance for you. At least you’ve saved me spending too much time trying to work out what’s possible for myself!