NSMutableArray для объектов. Для простых старых типов данных используйте NSMutableData и старые добрые типы указателей. Это неструктурированный буфер памяти с изменяемым размером, как раз то, что вам нужно для вектора POD. Что касается безопасности статического типа, Objective C все равно не дает вам ничего подобного.
EDIT:
Создание изменяемого объекта данных с начальным размером n структур CGPoint:
NSMutableData *Data = [NSMutableData dataWithLength: n*sizeof(CGPoint)];
Помещение CGPoint pt в буфер в i-й позиции:
CGPoint pt;
NSRange r = {i*sizeof(CGPoint), sizeof(CGPoint)};
[Data replaceBytesInRange: r withBytes:&pt];
Извлечение CGPoint из i-й позиции в pt:
CGPoint pt;
NSRange r = {i*sizeof(CGPoint), sizeof(CGPoint)};
[Data getBytes: &pt range:r];
Увеличение массива на n объектов:
[Data increaseLengthBy:n*sizeof(CGPoint)];
Надеюсь, что это покрывает. См. Ссылку NSMutableData и помните, что все методы NSData применимы к нему.