Me in your position would make a additional queue-thread that has a reference to the socket-threads and a message queue. All of your socket-threads can enqueue messages to the queue-thread that will then send messages to all of your socket-threads (so the socket-threads need a reference to your queue-thread/queue - Synchronization!).
As you have to expect that the ArryList? of socket-threads can change you have to use a Iterator to iterate.
To answer your question in the comments: Performance
Starting a thread per connection is quite resource intense (imagine 10.000 connections). So there are other ways to deal with it.
I would definetly go with mina:
Apache MINA is a network application framework which helps users develop high performance and high scalability network applications easily. It provides an abstract event-driven asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO.
There are plenty of tutorials on the net for MINA.
Maybe its a bit overkill but if you are interested, it's worth it.
[edit]
If its just 10-15 clients it should be fine to use a thread per connection…