bitcoind getrawmempool without downloading the full blockchain I'm running bitcoind from a small virtual machine on digitialocean.

I'm interested only in looking at the new transactions in bitcoind getrawmempool

Is there a way to get these transactions without downloading the whole blockchain?  Currently, I'll need a minimum of 40GB instance to have the whole blockchain on the VM.
Bitcoin core does not provide this functionality (as far as I know). 

The mempool is where transactions are stored until they get put into a block. It would be hard to determine you had the correct mempool if you didn't keep track of the whole block chain, though. For example, someone could broadcast an older transaction, and you would have no way to determine that you shouldn't just add it to your mempool if you didn't keep track of the whole block chain. Transactions also have to pass some basic validation before they can be added to the mempool, validation which requires having all the blockchain data.

If there were a program to implement this, it would at least have to process all new blocks as they came in, in order to determine which transactions to take out of the mempool as blocks get solved.

With this said, you can set up a light-weight node that just monitors what transactions are being spread around on the network, but without the full blockchain data you won't be able to validate that the transactions are candidates for inclusion in the next block. 

As Amaclin pointed, one such program to do this network watching is 


https://github.com/sebicas/bitcoin-sniffer.