“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