Code:
Sub FixList()
Range("A1").Select
Do
If (ActiveCell.Value > ActiveCell.Offset(0, 1)) Then
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Else: ActiveCell.Offset(1, 0).Range("A1").Select
End If
Loop Until IsEmpty(ActiveCell.Offset(0, 1))
End Sub
Be sure to do this on a copy of your worksheet, not the original.
The macro will quit when it encounters a row where col B is empty.