Вы используете одно и то же значение для @StartDate каждый раз, когда вы перебираете цикл.
Предполагая, что вам нужны части даты каждой даты в вашем примере вывода, в конце цикла вы должны обновите значение @StartDate.
INSERT INTO @DateList
VALUES(@Counter + 1, DATEADD(day,@Counter, @StartDate), DATEPART(year, @StartDate), DATEPART(QUARTER, @StartDate),DATEPART(month, @StartDate), DatePart(WEEKDAY,@StartDate)) ;
SET @StartDate = DATEADD(day,@Counter + 1, @StartDate);
SET @Counter +=1;