Just hypothetically speaking, once there is no more rewards and we transition entirely into transaction fee regime, if a miner (or group of miners) with unlimited supply of electricity, computing resources and sole intention to kill bitcoin decides to mine and hold up all the fees they collect and never again releasing those fees back into circulation (they have other means to pay their expenses and their primary goal is to kill bitcoin), wouldn't eventually they end up with all the bitcoin ?
This would be fantastic for everyone but the attacker.
First, everyone who held bitcoin would be rich. As bitcoin became more and more scarce, the price would go up. The attacker would have to offer full value for every bitcoin it managed to acquire, so it's no different from an attack where you buy all the bitcoins.
However, as the distribution becomes more and more skewed, the value of bitcoin will eventually crash because people couldn't get it.
Once that happens, everyone who likes to use bitcoin for payments or as a store of value, now all fantastically rich, would simply migrate to a different system. The attacker would have bought every bitcoin all the way up the rise in price.
Of course, this would be so obvious to all involved (at least eventually) that it would never get this far. Whether the result would be changing the mining algorithm, restoring the block reward, or something else, I can't predict. But likely the mere threat of changing the mining algorithm would be sufficient to end this.
A related, but more realistic, attack involves someone with 51% of the mining power taking all the transaction fees for themselves by refusing to mine on top of blocks mined by anyone else. As a monopolist, they could increase the transaction fees to as much as the "market" would bear. This faces the same problem -- everyone else can threaten to change the mining algorithm. If decentralization is the value proposition, such a chain would have no value proposition -- so why would anyone pay high fees to use it?