Erm not that I've done much with threads, but:
- I'm fairly sure that signals are sent and received at a process level, not thread level (not to mention that perlthrtut warns against mixing signals and threads)
- That aside, SIGKILL is uncatchable; the receiving process is terminated and removed from the process table and it's never delivered (so assigning a handler for it is kinda superfluous)
(Of course having said that I'd be interested to find out one way or another about what happens with signals under threads.)