Q:

É possível saber quantos clientes estão conectados ao ServerSocket? 

Como eu faço para ver quantos clientes estão conectados no meu ServerSocket em java? 

A:

Não sei se é que existe algum ID por usuário que ajuda a identificar quem são os clientes, mas em questão de servidores TCP, o que sempre pode ser contado é a conexão feita por um cliente e a partir desta conexão feita podemos obter dados e tentar criar uma identidade para poder distinguir. 
Contando conexões
Dentro do loop while usamos o ServerSocket.accept(); para determinar quando houve a conexão, então a conta seria algo como:
int i = 0;
ServerSocket ss = new ServerSocket(8088);
while (true) {
    Socket socket = ss.accept();
    i += 1;
    ...
}

Como o loop é "infinito", você pode usar um Thread para mostrar o i usando o System.out por exemplo.  Se você procura contar conexões feitas no exato momento isto deve lhe ajudar. 
Contando endereços remotos
Porém isto apenas conta as conexões feitas.  Geralmente o cliente conecta, recebe os dados e desconecta.  Se for uma página de web, então a cada imagem, js, css, dentro da página poderá gerar uma nova conexão, ou seja um cliente gera várias conexões. 

Note: Os navegadores de web geralmente usam a instrução Connection: keep-alive nos "headers" de requisição, o que deve fazer o que indica que o navegador deve manter a conexão aberta para os elementos na página, porém esta conexão nem sempre vai ficar aberta. 

Conseguimos contar o número de conexões feitas, agora o que precisamos é dar uma identidade para cada cliente. 
Um exemplo de identificar o cliente é usar socket.getRemoteSocketAddress(); (que pode não ser 100% garantido, mas isto é outra história) combinado a uma lista.  O código deve ficar algo assim:
List<String> clientes = new ArrayList<String>();
...
ServerSocket ss = new ServerSocket(8088);
while (true) {
    Socket socket = ss.accept();
    String addr = ss.getRemoteSocketAddress().toString();
    if (! clientes.contains(addr)) {
        clientes.add(addr);
    }
}

Desta maneira iremos salvar todos endereços conectados (lembre-se nestes casos é sempre necessário usar um Thread, ou o seu socket estar em um Thread separado) e para contar bastaria usar clientes.size(). 
Contador em tempo real
O exemplo que passei conta as conexões, mas não limpa a lista, de forma que o número nunca vai diminuir, ele só vai aumentar.  Neste caso, se o que você necessita é um contador em "tempo real", você pode usar um HashMap para criar um lista em que os itens expiram (semelhante ao que os contadores online fazem). 
Crie uma HashMap assim:
Map<String, Date> clientes = new HashMap<String, Date>();

String vai ter o "endereço". 
Date será usado para verificar se os dados devem expirar. 

O "Servidor" deve ficar assim:
Map<String, Date> clientes = new HashMap<String, Date>();

ServerSocket ss = new ServerSocket(8088);
while (true) {
    Socket socket = ss.accept();
    String addr = ss.getRemoteSocketAddress().toString();

    // Atualiza o horário de um endereço existente ou adiciona um novo endereço. 
    clientes.put(addr, new Date());
}

E em outro método (o qual deve ter acesso a variável clientes), você deve criar uma verificação para detectar se o tempo do cliente expirou (não precisa ser um longo tempo, 30 segundos está mais do que bom). 
Primeiro criamos um HashMap para relistar:
Map<String, Date> relista;

Depois criamos um loop para verificar o que ainda está dentro do tempo limite:
relista = new HashMap<String, Date>(); // Limpa relista para aproveitá-la novamente. 

Date agora = new Date();
agora.add(Calendar. SECOND, -30); // 30 segundos mencionado anteriormente, edite conforme necessidade. 

for (String key : clientes.keySet()) {
    Date timer = clientes.get(key);
    if (! agora.after(timer)) {
       // Se o item ainda está dentro dos 30 segundos então "mantém na lista". 
       relista.put(key, timer);
    }
}

clientes = relista; // Atualiza a lista de clientes conectados. 

Sessões
O último exemplo que citei é apenas uma forma simples de entender como listar, porém o uso de getRemoteSocketAddress não é exato pois o IP pode mudar (tanto em uma rede privada quanto na internet).  A maneira mais garantida seria usando sessão, porém será necessário bibliotecas externas para facilitar o trabalho (é possível fazer sem, mas exige bastante tempo para desenvolver algo).  Existem bibliotecas que podem ajudá-lo, como por exemplo o javax.servlet.http. HttpSession (claro que se for usado para HTTP).