Custom Key Value fields in a content type
I realise I'm answering my own question here but I've done some digging and come across the TableField module. 

Does anyone have any experience with this? 

It appears to do something along the lines of DoubleField.