JBoss has no control over the threads your MBean creates.
A possible solution is to include a boolean flag with your MBean (e.g. isStopRequested) and set it when stop() is called. Your threads would have to periodically check this flag and exit if they find it set.
An extention to that would be for the call to stop() to actually wait, until all thread have exited/joined, before returning.