Which test were you running, akkartik's or palsecam's?
This is what happens with palsecam's code:
arc> (= var 0 tbl (obj var 0))
#hash((var . 0))
arc> (repeat 50000 (thread (++ var) (++ tbl!var)))
nil
arc> var
49999
arc> tbl!var
50000
-----
arc> var 49999