“Is there a way to limit the user to not being able to see individual tables in a database but still be able to perform selects on them or to disable the object browser expanding for a database?”.  It does not look so. I created a user defined as “GRANT SELECT ON *.* TO 'blah'@'localhost'” (note no “SHOW DB” privilge). And SHOW DATABASES, SHOW FULL TABLES etc. returns everything. 
Second question will depend much on what storage engine you use.  There are 3 files for every MyISAM tables.  Hundred of thousands of open file handles will cause problems for any OS and the table cache will swap a lot I think. I think you should read this discussion: http://forums.mysql.com/read.php?21,52647,153433#msg-153433