You may look at DENYing select access to the user through the SCHEMA's sys and INFORMATION_SCHEMA. If denied select access to those schemas they should theoretically not have access to the system tables and views.
Haven't tried it, so I would be interested to know if it works.
😎