In my opinion the nicest way for the user is to have each line use as much bytes as needed for the item at that line's address. For example, 4 bytes for instructions, n(+1) bytes for strings of length n and 1 byte for an stray character or minimal padding.
If you're really fixed on the 4 bytes per line, you could also insert an extra line for offset items. Taking my previous example:
ffd29420 | 4.He | DCD 0x65481234
ffd29422 | | sHelloWorld ; "Hello world\n"
ffd29424 | llo | DCD 0x206f6c6c
ffd29428 | worl | DCD 0x6c726f77
ffd2942c | d..Q | DCD 0x51000a64
Both obviously have all kinds of consequences, but I'm afraid that's unavoidable.