I would use Java. You can then use the same code for Mac and Windows, which should save you effort in the long run, and avoid the necessity to write code for two platform APIs.
You don't mention the type of hardware you are running on, or the screen resolution, but I profiled Java's screen capture, and got 25fps running on a 3GHz cpu on Windows at 1920x1440 32-bit. (It was a 4-core machine, but the test used only 1 core.)
In Java, you capture the scren like this:
BufferedImage screencapture = new Robot().createScreenCapture(
new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()) );
You may want to consider how you deal with the uncompressed data. It's a fairly large data throughput - 12 ftps is ca 100MB/s at 1920x1440. You'll need some pretty decent hardware to maintain a steady rate of 100MB/s. Of course, compressing the screen captures is one option, e.g. using a video encoder.