Есть ли способ ограничить количество сохраняемых объектов в coredata, например, в стеке, где последние объекты автоматически удаляются?
Нет, это то, что вам нужно реализовать в коде. Вы можете непосредственно перед вызовом -save: в NSManagedObjectContext запросе NSManagedObjectContext узнать, сколько объектов будет вставлено, и выполнить свою пользовательскую логику на этом этапе.
-save:
NSManagedObjectContext