Deny access to information schema in SQL Server
You should be able to just deny permissions on the entire sys and information_schema schema as a whole:

DENY SELECT On SCHEMA::sys To [user_name]
DENY SELECT On SCHEMA::INFORMATION_SCHEMA To [user_name]


That should basically just prevent that user from doing any selects in those two schemas.