Answer from 2013
You can do it by merging objects:
{% set object = object|merge({'property1': 'somenewvalue'}) %}
Update from 2023
I don’t know from which version of twig this solution does not work anymore. Now you can only create an object with a new name:
{% set data = {foo:1} %}
{% set updated = data|merge({ bar: 2 }) %}
foo: {{ updated.foo }} {# Produces “foo: 1” #}
bar: {{ updated.bar }} {# Produces “bar: 2” #}