Getting individual block by height from Bitcoin P2P network
To request an individual block from a p2p peer, consider the get_data message, indicating what type of block (witness/compact/filtered).

Since you do not wish to do full block download and validation, you can first build a header chain to the most recent height, and then verify the block you are requesting is in the header chain. This would ensure that it would be expensive to falsify the block data you receive from a peer. You can also determine the block header hash corresponding to the height index you are interested in, as blocks cannot be uniquely referred to by height over the p2p network (two branches can have same height).

To build a header chain, consider the GET_HEADERS message, which also provides information (so-called block locator) about your current header branch so the peer can provide the headers for your node to catch-up to its header height.