I don't believe there's an easy way to do this other than the obvious: changing permissions on each object (I don't envy you having to do that!). But I have a tip for the future. Avoid setting access on a user basis, and instead use group membership. That way you can just remove the user from the group if you don't want them to have that particular permission (although they have to log off and back on to effect the change).
Another tip. You don't necessarily need 'hundreds of shares'. If all your user shares are on the same drive, you can assign drives to subdirectories of other shares, so instead of having each user having a share (like: net use w: \\servername\user001$) you can create one share (user$) and create a subdirectory for each user (user001, user002, etc.) and assign each user's drive like this: net use w: \\servername\user$\user001. I don't know how much, but I'm sure this will save some server resources or at the very least will make the registry smaller.