{% assign myhash.newvalue = 1 %} should add/update a value in a hash. Similarly,{% assign myhash.mysubhash.newvalue = 1 %} should work as expected.
Assigning to a non-existent value or a non-hash should generate an error.
This should work for capture too.
(Note: This is not a feature of Shopify Liquid)