__declspec (align ()) работает только для объектов со статическим временем жизни, если вам нужно выравнивание больше, чем предусмотрено new, вам нужно будет использовать специализированный распределитель, который может справиться с этим (например, с помощью _aligned_malloc или VirtualAlloc).
_aligned_malloc позволяет вам указать необходимое выравнивание, в то время как VirtualAlloc использует гранулярность распределения системы (которая равна 64 КБ во всех известных мне версиях окон, безусловно, это большое значение по сравнению с большинством выделений).