You need something to delimit names from cities (since cities may also have more than one word, presumably). Are all names exactly two tokens (first+last)? If so, you can assume anything after the the index and two-part name is city name. Here's one that does so:
cat new.txt | sed 's/^\(\S\+\)\s/\1~/' | sed 's/^\(\S\+\s\+\S\+\)\s\+\(.*\)$/\1~\2/' | column -s \~ -t
though the last label at the top (city) must be aligned manually.