Eu posso entender mal a intenção do seu script, mas não seria mais simples construir uma matriz contendo as contagens de cada usuário? algo como
w | awk '
BEGIN{"date +%H:%M:%S" | getline tim};
NR > 2 {num[$1]++};
END {for (usr in num) print usr, num[usr], tim}
'
ou
w | awk -v tim="$(date +%H:%M:%S)" '
NR > 2 {num[$1]++};
END {for (usr in num) print usr, num[usr], tim}
'