Reversing every second "row" in a list

Try this

list = {{1, 2}, {1, 4}, {1, 6}, {2, 2}, {2, 4}, {2, 6}, {3, 2}, {3, 4}, 
        {3, 6}, {4, 2}, {4, 4}, {4, 6}};
Join @@ MapAt[Reverse, #, Position[#, {{x_?EvenQ, _}, ___}]] &@ GatherBy[list, First]

{{1, 2}, {1, 4}, {1, 6}, {2, 6}, {2, 4}, {2, 2}, {3, 2}, {3, 4}, {3, 6}, {4, 6}, {4, 4}, {4, 2}}

It will be simpler if you store your list as

list2 = {{2, 4, 6}, {2, 4, 6}, {2, 4, 6}, {2, 4, 6}}

where positions is the number of "row"

MapAt[Reverse, list2, 2 ;; ;; 2]

{{2, 4, 6}, {6, 4, 2}, {2, 4, 6}, {6, 4, 2}}


One other solution (less tricky IMO):

list = Flatten[Table[{i, j}, {i, 1, 4}, {j, 2, 6, 2}], 1];
splittedlist = SplitBy[list, EvenQ]

{{{1, 2}, {1, 4}, {1, 6}}, {{2, 2}, {2, 4}, {2, 6}}, {{3, 2}, {3,4}, {3, 6}}, {{4, 2}, {4, 4}, {4, 6}}}

Flatten[Join[splittedlist[[#1]],Reverse@splittedlist[[#2]]] & @@@
  Partition[Range@Length@splittedlist, 2],1]

{{1, 2}, {1, 4}, {1, 6}, {2, 6}, {2, 4}, {2, 2}, {3, 2}, {3, 4}, {3, 6}, {4, 6}, {4, 4}, {4, 2}}