use joinwith the -nocheck-order option:
join --nocheck-order S43.txt S44.txt | column -t
(team column -tto make her beautiful)
However, as you say, you want to join all the files, and it only takes 2 to connect, you have to do this (if your shell is bash):
tmp=$(mktemp)
files=(*.txt)
cp "${files[0]}" result.file
for file in "${files[@]:1}"; do
join --nocheck-order result.file "$file" | column -t > "$tmp" && mv "$tmp" result.file
done