First, a bit of background to explain what's going on: Files in OS X can have two quite different kinds of permission settings applied to them: POSIX and ACLs.
Files always (well, almost always) have POSIX permissions applied, consisting of an owner, group, and others (with some combination of read, write, and execute for each of those). There is no way to control inheritance of POSIX permissions: new items are always owned by whatever user created them, the group assignment is inherited from the folder they're in, and the access is determined by the umask (which is pretty much always: owner gets full access, group and others read only + execute for folders). So POSIX permissions won't work for what you're trying to do.
Files can also have an access control list (ACL) applied. This is a list of access control entries (ACEs), each of which applies to a user or group, specifies types of access (in great detail), whether they're being allowed or denied, and whether the ACE should also be copied to items created inside the folder. That last bit is the part that makes this useful for you; you need to create an ACE on the folder that specifies the group you want, the types of access you want, and full inheritance.
chmod on OS X can manipulate ACEs with the +a, -a, etc permissions options. If I understand what you want, you'd use this (with your group name and folder path substituted) to create the ACE:
chmod +a "group:examplegroup allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /path/to/folder
Note that the inheritance is not "live", i.e. it doesn't apply to items created before you assigned the ACE, and it doesn't apply to items created somewhere else and then moved into the folder. You can apply it to existing contents by using -R (chmod -R +a ...
). I don't know of a way (except Apple's server admin tools) to force inheritance to items moved into the folder.
Pulling the RAM seems a reliable way to constrain that resource.
Running in virtualization should help if you can tell your preferred stack to allocate less threads or cores, but I would question your main assumption that these are the critical bottlenecks for making your simulations valuable.
Why not let the simulations run full speed and just measure where the bottlenecks on the Mac arise. You can measure VM paging, IO statistics and time to run each job on your mac and then run a similar test on the production hardware.
If the code is 2 to 1 faster on the Mac and you don't have paging or IO contention, that should scale quite well to the measurements on the Linux hardware. I totally get the wish to control this and eliminate variables, but since systems need to be balanced everywhere - what is a bottleneck on one system / architecture is often not the same bottleneck on another.
Best Answer
Besides that you should be able find a lot of information by just googling for "macos launchd getting started" and similar search terms. For specific questions about problems in getting something done there is also always this site here :-)