Вот один из способов, которым вы могли бы это сделать.Я не говорю, что это самый "Rx" способ, заметьте (мой опыт с Rx все еще несколько ограничен).
public static IEnumerable<T> Delay(this IEnumerable<T> source, int interval)
{
foreach (T item in source)
{
Thread.Sleep(interval);
yield return item;
}
}
А потом:
var source = firstCollection.Delay(1000).ToObservable();
source.Subscribe(x => secondCollection.Add(x));