Is a proof of work consensus mechanism that discourages mining in pools possible? Most proof of work cryptocurrencies, including Bitcoin, have most of their hashrate controlled by the biggest mining pools which significantly decreases decentralization. Would it be theoretically possible to create a proof of work algorithm that distributes the block reward to miners relative to how many shares they have submitted? Basically make it so that the algorithm itself is a decentralized mining pool.
biggest mining pools which significantly decreases decentralization

Not at all. Pools contribute to decentralization. Without pools, small miners would never be able to mine feasibly, because they would never find a block. No matter how much time they spent mining, no block = no reward. Pools allow them a fair share of block rewards proportional to their work.

Would it be theoretically possible to create a proof of work algorithm that distributes the block reward to miners relative to how many shares they have submitted

It's called P2Pool