Вам нужно будет создать свой собственный класс коллекции, который будет управлять удалением. Фактический список и коллекция не имеют ничего общего с временем жизни объекта.
public class AutoDisposeList<T> : IList<T> where T : IDisposable
{
public void Add(T item)
{
base.Add(item);
}
public void RemoveAndDispose(T item)
{
base.Remove(item);
item.Dispose();
}
}