mining is decentralised, what you are talking about is widening the distribution.
the simple tactic i can see is that when a miner relays a solved block, nodes can have a rule to ignore blocks from that same pool for atleast 3,6,10 blocks.. that way one miner cant gain more then 33%, 16.5% 10% of blocks.but pools wont like that

How do you identify miners? AIUI, a miner just needs to broadcast a solved block - that's it. You can't tell from block to block who solved it. Nor, if you insisted on miners identifying themselves, whether they are lying. Or am I misunderstanding your proposal?