Есть массив со всем датами месяца.
Определяем первый день недели месяца:
var first_day = new Date(2017, 6, 1); // июль 2017 начинается с субботы
var first_wday = first_day.getDay(); // 6
Каждые 7 дней при выводе массива добавляем перенос строки, упрощённо br
А как построить первую строчку?
Будет цикл от 0 до 6 условно, но нельзя напрямую сравнить
if(0 == first_wday)
потому что неделя тогда будет с воскресенья начинаться.
Строить цикл от 1 до 7 тоже нельзя - воскресенье в него не попадёт.