Yes, the limit is set by the number of http threads and processing threads, but mostly processing threads... as well as the types of queries (some of which take more overall memory).
The cluster, overall, uses 1 processing thread per segment. So if the data you are querying covers 10,000 segments, then 10 nodes with 10 processing threads each means the 100 total processing threads are going to process about 100 segments each.
The broker is also a limiting factor. The broker merges the results of the individual historical nodes, and the processing thread count comes into play there as well.
You can have multiple brokers answering queries on the same set of historical nodes and indexing service tasks
Additionally the number of http threads should be set to something reasonable to make sure you can handle the number of concurrent queries you need both at the broker and historical level.