You mention that you want to monitor 3000 stock tickers. But you don't mention whether you want them all real time. With IB you can get 100 in parallel, and a few hundred more if you have a large account size (few million USD). But you won't be able to get 3000 in parallel.
However, if you have some clever software you can poll the tickers: get prices for the first one hundred. Then stop those and go to the next 100, and so on. Do this 30 times and you have received prices for all tickers and you can start again from the beginning. If you don't want real time bid/ask prices, but historical trade prices then you can do something similar: requesting the data in batches of 100 tickers.
To give you an impression: I am requesting historical data for 170 tickers, sequentially (one at a time). I'm receiving 2 years historical data for each of these. This takes in total almost 6 minutes (350 seconds). Extrapolating, it would take 105 minutes to get this historical data for 3000 tickers.