yeah, the simplest I feel would be the property way. Give the player a property 'holdingleft' and 'holdingright' and set then to 'not' at the start. Basically you can overide the take command to check if there is a hand free or not and if it's free it'll give them the object:
command <take #@object#> {
if property <#player[userid]#; holdingleft> and property <#player[userid]#; holdingright> then msg <You cannot take it as your hands are full.> else {
if not property <#player[userid]#; holdingright> then property <#player[userid]#; holdingright> else property <#player[userid]#; holdingleft>
give <#object>
msg <You pick it up.>
}}
I just wrote that off-hand now, should work though...