CJam, 5 4 lines, 162 bytes
"Hello ")))))))))))))))))))))))))))))))))))68S\cel "Wor ")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))@SX\c| Same number of lines as Insomnia! (but a lot more bytes)
Explanation
"Hello\n" Push "Hello" and a newline ) Uncons the newline )))...))) Increment the newline into a "," 68 68S\ Push 68 S and a space then swap, leaving Push68 aon spacetop \cc Swap theConvert 68 and space and convertinto 68a ->char "D" el Lowercase "D" into "d" "Wor\n" Push "Wor" and a newline ) Uncons the newline )))...))) Increment the newline into an "l" @ Rotate top thethree elements, moving the "d" to the top SX\ Push a space and 1 then swap, leaving the space on top c Convert the space (which is an array) into a char | Bitwise or the space (32) with 1 to give "!" (33) CJam automatically prints the stack afterwards.
Thanks to @Optimizer for reminding me that Sc works, because otherwise SX| fails (it does a setwise or instead, giving the array consisting of a space and 1).