Ted,

I think I would use a Do ... Loop Until with an error handler. Also I wouldn't use the selection object:

Sub Tbl_Add_RowsII()
Dim oTbl As Table
Dim oRow As Row
Dim lngSeq As Long
  Application.ScreenUpdating = False
  Set oTbl = Selection.Tables(1)
  lngSeq = 2 'Use 2 to insert row after each odd or even row. Use 3 for every third, 4 for every fourth, etc.)
  Set oRow = oTbl.Rows(lngSeq) 'For every odd row
  'Set oRow = oTbl.Rows(lngSeq + 1) 'For every even row, or other sequence (e.g., every third, fourth, fifth etc.)
  Do
    oTbl.Rows.Add oRow
    On Error GoTo Err_Index
    Set oRow = oTbl.Rows(oRow.Index + lngSeq)
  Loop Until oRow.Index = oTbl.Rows.Count
  oTbl.Rows.Add oRow
lbl_Exit:
  Exit Sub
Err_Index:
  If oTbl.Rows.Last.Index - oRow.Index = lngSeq - 1 Then
    oTbl.Rows.Add
  End If
  Resume lbl_Exit
End Sub