Можно попробовать найти в продаже часовой кварц с ±5 ppm, что даст около 10 секунд в месяц, а это уже вполне хороший показатель…
Зачем искать особый и, наверно, дорогой кварц.
Стабильное отличие частоты кварца от заданной в МК легко устранить. Скажем, есть отставание за день на 1 секунду - раз в день (лучше в ночь) МК будет добавлять эту секунду.
Влияние температуры можно устранить с помощью температурного датчика, он стоит копейки.
Тривиальная задача для STM32. Два должным образом соединённых таймера позволяют аппаратно на первом таймере настраивать период и скважность, а вторым считать выданные импульсы…
В МК AVR давно уже можно аппаратно соединять периферийные устройства, в том числе и таймеры. Я, правда в этом пока не разбирался.