Custom windows can be done rather easily, but you have to create the window programmatically, using settings that exclude normal window elements, though you will probably have to subclass NSView in order to draw any special elements and have them respond in predictable ways.
Buttons are even easier: you just make a button that has no borders or image and underlay it with the image you want for it, no subclassing involved.
Most of the customized interface stuff does require a fair bit of work, because Apple prefers that you use standard elements as much as possible so that the UI remains consistent getting too unique for no particularly good reason other than uniqueness really serves only to confuse or annoy the user.