This took < 1 second.
Sub InsertRows()
Dim numberOfValues As Long
Dim i As Long
Dim values As Variant
Const numberOfEmptyRows As Long = 11
Application.ScreenUpdating = False
' count values in column A
numberOfValues = Cells(Rows.Count, "A").End(xlUp).Row
' populate array with numbers
ReDim values(1 To numberOfValues, 1 To 1)
For i = 1 To numberOfValues
values(i, 1) = i
Next i
' I know there is a better way to do this part...
Range(Cells(1, 2), Cells(numberOfValues, 2)).Value = values
For i = 1 To numberOfEmptyRows - 1
Range(Cells(Rows.Count, "B").End(xlUp).Offset(1, 0), Cells(Rows.Count, "B").End(xlUp).Offset(numberOfValues, 0)).Value = values
Next i
' sort by values inserted in column B
Range(Cells(1, 1), Cells(Rows.Count, "B").End(xlUp)).Sort Key1:=Range("B1"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Columns("B:B").EntireColumn.Delete
Application.ScreenUpdating = True
End Sub
This code uses a helper column (in this case, B) to insert a number sequence next to the target range. Then it adds the same numbers N times below itself, and sorts on that column. Finally, it deletes the column. This is how you can quickly insert blank rows into any data set.
Change Const numberOfEmptyRows As Long = 11
if you want to insert more/less blank rows. There is a limit to how many records this technique can handle (and how many blank rows can be inserted) before you hit Excel's row limit.