Your code was very close. In fact, it may have worked. I'm not sure. Using select & activate is inevitably an issue. Avoid it..
This isn't really an answer. Just some food for thought as you're learning to program. My comments start with {--
Option Explicit ' {--option explicit forces you to declare your variables. Do this. Always.
Sub ticker()
'{group your variable declarations together}
Dim numberOfCellsToCopy As Integer
Dim currentCopyColumn As Integer
Dim currentPasteRow As Integer
Dim i As Integer
' {--use a worksheet object instead of selecting}
Dim srcWs As Worksheet
Dim destWs As Worksheet
'assign where to insert the columns
currentCopyColumn = 2
currentPasteColumn = 2
numberOfCellsToCopy = 5
' {--Set worksheet objects}
Set srcWs = ThisWorkbook.Worksheets("HistoricalDataRequest")
Set destWs = ThisWorkbook.Worksheets("SomeOtherWorksheet")
For i = 2 To numberOfCellsToCopy 'loop increases by 1??? {--YES. It does.}
' {--indent your code so it's easier to see program flow
' {--I have no idea what you're trying to do here.... sorry. You're only copying one cell
' --so I really can't figure what you're trying to accomplish}
'Range(Cells(2, currentCopyColumn), Cells(2, currentCopyColumn)).Select 'number =row
'Selection.Copy 'number =row
'Range(Cells(7, currentPasteColumn), Cells(7, currentPasteColumn)).Select
'ActiveSheet.Paste
' {--copy/paste can be done in one line using a range object
' --range uses a cell name.}
srcWs.Range("B2").Copy Destination:=destWs.Range("B7")
' { --or more in line with your method like this}
srcWs.Range(srcWs.Cells(2, currentCopyColumn)).Copy Destination:=destWs.Range(destWs.Cells(7, currentPasteColumn))
'increase the column index values to go to the next one
currentCopyColumn = currentCopyColumn + 1
currentPasteColumn = currentPasteColumn + 4
Next i ' {--next i will increment the i var for you}
End Sub