Apple moved to launchd rather than sysctl for persisting things like maxfiles and other things you might find with ulimit. See the output of:
To set a new limit:
launchctl limit maxfiles 1024 2048
To persist these things across reboots, create:
and add just the arguments to the launchctl program:
limit maxproc 512 1024 limit maxfiles 1024 2048
Now new shells created after reboots will maintain the new values.