How to actively measure mempool?
You should use full nodes on both sending and receiving end

Sending Tx


Use the -connect option to broadcast your tx through selected neighbours. Use https://bitnodes.21.co/ to find neighbours. Use the wallet commands in bitcoind and send a transaction to address in your own wallet


Receiving Tx


Use -walletnotify option in bitcoind to get notifcation of incoming wallet transaction. I don't think it is easy to receive mempool tx without validating the blockchain first. Anyway this is one time effort, once you have it synced on one node you can easily copy the whole .bitcoin directory to other nodes.


About language you don't need to use C++ at all. For sending tx you need to do RPC calls. This can be easily done using bash commands or you can use https://github.com/jgarzik/python-bitcoinrpc in python. For receiving, the notify script can be any language php/python, it will just get your tx id as parameter and then you can do whatever you want.

Don't worry about spam. Its difficult to spam the network unless you have lots of bitcoins to waste in tx fees. Just make sure you put enough tx fees so that it get relayed through the network. For your experiment, you can actually try with different tx fees to observe the propagation time through the network.

Let me know when your research is over. Curious to see the results :D