Worksheets have 3 state. Visible, Hidden and Very Hidden. Very Hidden sheets do not appear on "Hide/Show Sheets List". So basically what you can do is create very hidden sheets. And a workbook open event to check the user. According to the user clearances show very hidden sheets. And again add a workbook close event to change the sheet visiblity property to very hidden so that the next user would not see them.
However there are some flaws. The VBA passwords are very easy to crack. Whenever the user has access the VBA code any precaution you take would be absolute. And sharing this workbook and let it open by several users at the same time can cause problems (I haven't tried this before).