Define an OrderedListSubject<T> class that behaves like an ordered ListSubject<T>. It could accept an IComparer<T> object as a constructor parameter, with a default overload that uses Comparer<T>.Default. Whenever any data is added to the list (interactively) or pushed into the subject (reactively), it would be inserted into the correct index of the list using the IComparer<T> in a thread-safe manner.
Original discussion:
http://rxx.codeplex.com/discussions/358096