I do not know if this is faster than your code or not (you will have to test it to see), but it involves a whole lot less looping...
Code:
Sub PositionNumbers()
  Dim N As Long, LastRow As Long, ListToDelete As Variant
  ListToDelete = Range("R8:R" & Cells(Rows.Count, "R").End(xlUp).Row)
  LastRow = Columns("T:CG").Find(What:="*", SearchOrder:=xlRows, _
            SearchDirection:=xlPrevious, LookIn:=xlValues).Row
  Application.ScreenUpdating = False
  For N = 1 To UBound(ListToDelete)
    Range("T8:CG" & LastRow).Replace ListToDelete(N, 1), "", xlPart
  Next
  Application.ScreenUpdating = True
End Sub