PARTITIONing does not help with INSERTs. PARTITIONing may not be beneficial for SELECTs; let's see the SELECTs that you will be using.
5000 INSERTs per second -- you should not try to do the INSERTs one at a time. Instead you should batch them. The optimal size is 100 rows at a time.
INSERT INTO tbl (a,b,c) VALUES (1,2,3), (3,4,5), ...;
Please provide
SHOW CREATE TABLE tbl ;
so we can see the actual datatypes and indexes and engine. There are potential problems when inserting 5000 rows per second.
2000 tables -- This is not a good idea. (But there is nothing seriously wrong with it.)
Further comments on PARTITIONing:
http://mysql.rjweb.org/doc.php/ricksrots#partitioning