Why doesn't each node store only a portion of the blockchain? Why doesn't each node only store a portion of the blokchain instead of the entire blockchain? Is it possible and why is it possible or impossible?
Your question is vague, but I assume your real question is why every node must store the full blockchain.

The answer to that is that they don't. In fact, nodes can choose to not store any part of the blockchain at all. The blocks are only needed when validating history, to build up the state of the global ledger (the "UTXO set").

Nodes that do store the full chain advertize so on the network, so that new nodes that join can fetch history from them. However, they themselves do not need the chain at all after validating it, and since Bitcoin Core 0.11, it is in fact possible to configure your node to throw away older parts of the chain to reduce disk space.

To summarize: the only data that every fully validating network node needs is its own validated copy of the UTXO set.

Given that information, maybe your question becomes: why isn't the UTXO set stored in a distributed fashion?

The answer to that is more complicated:


Trust model we cannot trust other nodes to store the UTXO set for us. The reason we went through the entire blockchain to build up the UTXO set is because the blockchain is auditable while the UTXO set is not. It allows us to check whether the entirety of history is valid. If we go outsource the UTXO set, and rely on other nodes to keep part of it, they could modify it to their advantage (for example, to make us believe they have more money than they do).
Performance Access to the UTXO set must be very fast. Faster nodes often are configured to keep large portions of it in RAM rather than on disk. The reason for that is that it directly influences the time we need to verify new blocks that are being broadcast. Delays in verification cause blocks to propagate slower across the network, which results in more stale blocks, and indirectly an advantage for a 51% attacker.