They both provide thread pool implementations that work, so which one would be better suited depends on your requirements. I don't have any experience usingThe JSR 166 backport on older
Java versions, but it seems like a pretty good option. In theory, if you ever upgrade to Java 5 or later you could simply search/replace the package names in your source files, as the backport API's shoud be compatible with the Java 5 and later java.util.concurrent classes. You also get a lot of the rather nifty concurrency utilities, besides ThreadPoolExecutor / ScheduledThreadPoolExecutor, and that's a nice benefit as well.
Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.