Aren't blocks generated too slowly to catch up to transactions? I read somewhere that it takes 10 minutes to mine a block.

What happens when the number of transactions exceeds the block size. Do we all have to wait 10 minutes until another block comes in?
Yes. If there are more unconfirmed transactions than can fit in one block at a time, then those unconfirmed transactions can be confirmed in the next block.

However having more transactions than can be confirmed in one block is not a bad thing. If the sum of the transaction fees of all of the unconfirmed transaction is high, then that means that miners are more incentivized to mine the next block instead of engaging in fee sniping where they will continue to mine for the block that was just found so that they can collect the transaction fees for that block. If all unconfirmed transactions were cleared, it would be more profitable (for some time) for a miner to continue mining the previous block as the reward for that block would include transaction fees and thus be greater than the reward for the next block which, for some time, would not include any transaction fees.