is it possible to decode block height from a blockhash? I'm creating a bitcoin network client and I'm wondering if it's possible to decode the block height from a blockhash whenever I receive a new block inventory vector.
No.  The whole point of a hash is that it's a one way function.  You can't "decode" any of the header data from the block hash.

Moreover, the block height isn't even contained in the block header.  You're supposed to calculate the block height by looking at the previous block hash in the header, which hopefully refers to a block whose height you already know; if not, get that block and recurse.  (For sufficiently recent blocks, the block height is contained in the scripts of the coinbase transaction, but that's not part of the header.)