First subelements (like 2 ;; 4 in the following example) are applied so the positions correspond to the actual positions of the data in the file. Then SkipLines is applied, then HeaderLines is applied.
In[10]:= csv = ExportString[Partition[Range[25], 5], "CSV"]
Out[10]= "1,2,3,4,5
6,7,8,9,10
11,12,13,14,15
16,17,18,19,20
21,22,23,24,25
"
In[11]:= ImportString[csv, {"Data", 2 ;; 4}]
Out[11]= {{6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}, {16, 17, 18, 19, 20}}
In[12]:= ImportString[csv, {"Data", 2 ;; 4}, "SkipLines" -> 1]
Out[12]= {{11, 12, 13, 14, 15}, {16, 17, 18, 19, 20}}
For "Data" and similar elements, HeaderLines and SkipLines behave the same. For Dataset, HeaderLines will become the Dataset headers, and SkipLines will simply skip like normal.