At first I tried to implement this using a SortDescription, but I quickly realized this had one drawback. The SortDirection seems to set an alphanumeric sort on the data column. Values (1, 2, 10, 200, 100) would be sorted as (1, 10, 100, 2, 200) which was precisely not what I wanted. To get a pure numeric sort it seemed I'd have to write my own logic.
Thankfully the list collection view provides another property CustomSort, which takes an IComparer<T>. The MSDN docs mention that it's preferred to derive from Comparer<T> instead of the interface. With that in mind I was able to create the following class.
This provided the desired functionality of sorting each row into the correct position as the values were edited.
|Row in edit mode is not sorted|
|Edit completed and row is sorted into place|
While this worked great for what we were doing, I can't speak to how this would perform with extremely large sets of data.