Programming language has nothing to do with it, you can use C, C++, Assembler, etc... languages on either platform. It's true that both platforms have their own SDK which is a library of routines that are used with a given programming language to develop software for the OS. The hardware isn't so different anymore since you can run Windows on a MAC or OS X on Intel now.
The big difference is the OS itself. A program written and compiled for Windows cannot be run on OS X and vice versa. There are fundamental differences in the OS kernel, security, file structure, graphics format, etc... between Windows and OS X which make it impossible for an executable to run on both platforms.