Not quite, no. You should really read up on for-loops, but basically their construct is
for (intial value; while-condition; incrementer)
In your example, initial value will be assigning counter = firstNum.
Your while-condition will be the same as your original while-loop condition.
Your incrementer is your original counter = counter + 2, just moved into the for construct.
That would work, yes. Glad you realised you don't need the initialiser.
Note that in dropping the use of 'counter' and using 'firstNum' as the loop counter, after the loop you'll no longer know what the start point was, as you're incrementing it.