You could try using a private.xml like this with KeyRemap4MacBook:
<?xml version="1.0"?>
<root>
<item>
<name>test</name>
<identifier>test</identifier>
<autogen>__KeyToKey__ KeyCode::F1, VK_CONTROL, KeyCode::BRIGHTNESS_DOWN</autogen>
<autogen>__KeyToKey__ KeyCode::F2, VK_CONTROL, KeyCode::BRIGHTNESS_UP</autogen>
<autogen>__KeyToKey__ KeyCode::F3, VK_CONTROL, KeyCode::EXPOSE_ALL</autogen>
<autogen>__KeyToKey__ KeyCode::F4, VK_CONTROL, KeyCode::LAUNCHPAD</autogen>
<autogen>__ConsumerToKey__ KeyCode::F5, VK_CONTROL, ConsumerKeyCode::KEYBOARDLIGHT_LOW</autogen>
<autogen>__ConsumerToKey__ KeyCode::F6, VK_CONTROL, ConsumerKeyCode::KEYBOARDLIGHT_HIGH</autogen>
<autogen>__ConsumerToKey__ KeyCode::F7, VK_CONTROL, ConsumerKeyCode::MUSIC_PREV</autogen>
<autogen>__ConsumerToKey__ KeyCode::F8, VK_CONTROL, ConsumerKeyCode::MUSIC_PLAY</autogen>
<autogen>__ConsumerToKey__ KeyCode::F9, VK_CONTROL, ConsumerKeyCode::MUSIC_NEXT</autogen>
<autogen>__ConsumerToKey__ KeyCode::F10, VK_CONTROL, ConsumerKeyCode::VOLUME_MUTE</autogen>
<autogen>__ConsumerToKey__ KeyCode::F11, VK_CONTROL, ConsumerKeyCode::VOLUME_DOWN, ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L</autogen>
<autogen>__ConsumerToKey__ KeyCode::F12, VK_CONTROL, ConsumerKeyCode::VOLUME_UP, ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L</autogen>
</item>
</root>
I don't know if it works with all keyboards, but it does work with my Kinesis Advantage.
See http://lri.me/keyremap4macbook.html for more information about using KeyRemap4MacBook.
Best Answer
I recommend using the free tool Karabiner-Elements to accomplish this. After you've installed it, go to the Function Keys tab and set each key's behavior as desired. Below is a replica of the default key behaviors on a 2014 MacBook Pro, for example. If you want to only remap the function keys on your external keyboard, then uncheck the internal keyboard in the Devices tab.