Yes, it is currently capped at 21m. But it is just a line of code.
Anybody can go and change it to whatever they want and what is needed then is to persuade the miners to accept it. Blockchain provides immutability of data already on the blockchain but nothing stops people from changing the code.
It's just that.
There is no need to persuade Bitcoin wallet users.
So why are we seeing a media message that there can only be 21m BTC in circulation where this is strictly speaking not true.
It could be more.
What we need is just an agreement of miners that they are happy. And given the hashrate it would take less than ten mining pools to get 50%+ hashrate. Not much.
Obviously mining pools would not make such a decision because it would hurt their interests and BTC main selling point is that there can be only 21m BTC in cicrulation but ... they could make such a decision at some point.
Please correct me if I am wrong.