The #! interpreter construct requires the execute bit. There is nothing you can put inside of a script to make it executable. How could that work? The script can't run the internal instruction unless the script is running already.
Shell scripts can be run as input to a shell, such as :
Code:
sh my_non_executable_script