「アトミック」と「スレッドセーフ」をより厳密に区別する必要があります。あなたが言うように、書き込みはほとんどの組み込みの値の型と参照に対してアトミックです。
ただし、それはそれらがスレッドセーフであることを意味しません。値 "A" と "B" の両方が書き込まれている場合、スレッドはその間に何も表示されないことを意味します。(たとえば、1 から 4 への変更は、5 や 2 を表示したり、1 や 4 以外の値を表示したりすることはありません。)変数に値が書き込まれるとすぐに、1 つのスレッドが値 "B" を認識するという意味ではありません。そのためには、揮発性の観点からメモリ モデルを調べる必要があります。通常、ロック変数や揮発性変数によって取得されるメモリ バリアがない場合、メイン メモリへの書き込みが遅延し、読み取りが進行する可能性があります。
カウンターがあり、最新の値を要求したが、メモリバリアがないために最新の値を受け取っていない場合、各操作がアトミックである可能性があるとしても、それをスレッドセーフと呼ぶことは合理的ではないと思います。
ただし、これはプロパティとは何の関係もありません。プロパティは、単に構文糖衣を使用したメソッドです。スレッド化に関して特別な保証はありません。.NET 2.0 メモリ モデルには、ECMA モデルよりも多くの保証があり、メソッドのエントリと終了に関して保証を行う可能性があります。これらの保証はプロパティにも適用されるはずですが、そのようなルールの解釈については神経質になるでしょう: メモリ モデルについて推論するのは非常に難しい場合があります。