Если хотите что-то проверить - создайте простой тестовый проект и посмотрите.
Если у вас объекты реализуют INotifyPropertyChanged, то даже если они были привязаны к ItemsControl с помощью IEnumerable, привязанные (Binding) свойства в шаблоне обновятся. Они не пересоздадутся целиком, а именно обновятся те свойства, которые зависят от изменённых свойств вашего объекта. Например
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Text}" Foreground="{Binding ForeColor}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
При изменении свойства Text вашего объекта обновится текст элемента. При изменении цвета - обновится цвет.
Но если вы в ItemsSource кладёте IEnumerable, то изменения собственно коллекции не отслеживаются. ни добавление, ни удаление. Если у вас изменилась коллекция вам нужно переприсваивать её заново и тогда будут заново созданы все визуальные элементы.
Для отслеживания изменения коллекции она должна реализовывать INotifyCollectionChanged. Вы можете за основу взять коллекции ObservableCollection<> - они уже реализуют необходимые события.
Соответственно, если в NotifyCollectionChanged будет указано, что добавился элемент - только он и отрисуется. Если элемент удалён - он и будет удалён. Остальные элементы не будут затронуты.