Что то уж больно круто в предыдущем посте получилось....
>> статический метод Synchronized возвращает екземпляр Hashtable.SyncHashtable. Этот класс является просто оберткой.
Вот, Вы же сами это сказали — изменения основного набора данных производяться "от имени и по пручению" объекта-обертки.
Следовательно, два объекта-оберки созданные в разных потоках осуществлют доступ к одному и тому же набору данных вызывая методы HashTable, предварительно блокируя изменяемый объект.
А если Вы такой любитель покопаться в рефлекторе, обратите внимание на реализацию методов изменения коллекции HashTable.