Internally, the kernel uses KernelScheduledThreadPoolExecutor for scheduling periodic tasks. This is part of the com.springsource.kernel.services.concurrent which is not imported into the user region, so you cannot use it in an application unless you change the default configuration. KernelScheduledThreadPoolExecutor gathers statistics and IIRC names the corresponding threads appropriately.
However, I wouldn't recommend depending on kernel internals as these are subject to change. For example, the package names will change when we donate the kernel to Eclipse Virgo.
So you should probably use a standard ScheduledThreadPoolExecutor from java.util.concurrent or similar facilities provided by Spring. I wouldn't recommend newing up your own Threads as that's too low level and you won't get any pooling benefits.
You may need to ensure you use the correct thread context class loader. You can get hold of the thread context class loader when an application bean is created and somehow bind it to the scheduled task's thread before calling any third party libraries that might depend on it.
Hope that gives you sufficient food for thought.
Glyn Normington
SpringSource