Я пытаюсь понять суть синхронизации в ICollection. Почему бы просто не заблокировать коллекцию?
lock(myCollection) { //do stuff to myCollection }
vs
lock(myCollection.SyncRoot) { //do stuff to myCollection }