This really depends on what you mean by "not execute until you have given it all the lines". Bash is an interpreted language (not compiled), so no matter which way you slice it, shell will read and execute lines one at a time, each command will generate its own return code independently, regardless of whether you put these commands in subshells or other things.
So what I suspect you are really asking is:
(a) is there a way for you to gather all the output in one screen area without interruption
(b) is there a way for you to have to only press the "Enter" key once to have all the commands run in sequence
If you join each command line separated by a semicolon ';' then this has the same effect as running them on different lines. So string them all together on one line and press "Enter" once at the end. You may do this manually by typing, or you may process your shell script through a tool (like sed or tr) to replace End-of-Line characters with semicolons, and then feed the result into ssh. On your local host, run the following:
cat script.sh | tr "\n" ';' | ssh [remote host]
Note that this does not create an interactive shell on the remote host, it only runs the commands from the script and then returns control to your local host.