There are two ways of thinking about your question:
1. Do it using the Lazarus libraries (i.e. Delphi style), and let the system worry about the nitty gritty details.
2. Do it using Mac OS libraries directly.
It sounds like you want to know about #2. This isn't freepascal specific, and basically works exactly the same in FreePascal as it does in ObjectiveC. In fact, there is a special mode called ObjectivePascal that allows FreePascal to be compatible with ObjectiveC libraries/frameworks, including the system ones. (then you can follow apple's development guides).
If you know Delphi, method 1 will be easier. If you know ObjectiveC development already, method 2 will be easier.
Also, method 2 allows you to directly access more OS X functionality and thus be "more native", while method 1 gives you cross-platform compatibility with f.e. Linux and Windows.
Some of the people on this list have already written tutorials online about this OnjectivePascal.