The shell is just a process that is controlled by the terminal, but this is also the case for most processes started by the shell itself. So, there is nothing special with the shell. For more information about terminals and shells in particular, you may be interested by: What is the exact difference between a 'terminal', a 'shell', a 'tty' and a 'console'?What is the exact difference between a 'terminal', a 'shell', a 'tty' and a 'console'?
Note also that you can run any command in a terminal, e.g.
xterm -e mutt
to run the Mutt mail user agent in xterm. There doesn't need to be a shell.