Isn't it in the best interest of the network that each block will contain as many transactions as possible?
Perhaps. But is it in the best interest of the miner?
Why make transactions wait? If it takes the same effort to create a block with 10 transactions or 1000 transactions, why the system does not enforce choosing the the latter?
Good question. I'm not sure if there are technical reasons why this isn't enforced, but from a ideological standpoint, most of Bitcoin is voluntary.
When creating transactions you are not "required" to include a fee. You are welcome to create transactions without a fee if you like.
When acting as a peer, you are not "required" to relay transactions. You are welcome to use any criteria you like for refusing to relay a transaction. In most cases, people run the reference client. As such, they refuse to relay transactions that seem too much like spam unless they include a fee.
When mining, you are not required to include any transactions at all in your block (except for the coinbase transaction that pays out the block reward). You can use any criteria you like for choosing transactions.
Theoretically, a node which has considerably more computing power vs the rest of the network, can choose to include 1 transaction with each block, deliberately delaying confirmations (or controlling them) since it has the biggest chances of finding a new block...
Yes. This is true. This is the nature of the design of Bitcoin, and it is why a ">50% attack" works.