I would imagine that the Thread class is loaded before any of your custom code gets a chance to execute (seeing as your code is most likely executing on an instance of a Thread).
In order to replace a class like Thread, you would most likely need to create a jar with your custom implementation and put it on the bootclasspath. however, you would need to replace the current implementation not extend it, which makes things trickier.