WordPress Multisite with thousands of blog

The number of tables is not an issue by itself. Actually separating the tables for each blog make each operation related to a specific blog more performant. Your scaling problem will come more likely from the big monolithic users tables.

Scaling issues will come from the amount of requests your DB will have to handle, not the actual organization of the data, and this is where the flexibility of having of having separate tables per blog shines as a simple technique you can implement is to move some of them to another DB (use blog number modulo 2 to decided which blog goes where between two DB servers)

When will you need to split the DB? IMO with proper caching and modern hardware you should probably handle more then thousands on one server, but this really depends on specific usage patterns.