You can just use ret at the end, saving 3 bytes. Also, the initial value of bp is 09xx on every version of MS-DOS since 4.0, so you can also start off with an xchg ax,bp to save another byte.
xchg ax,bp
mov dx,107
int 21
ret
db "hello, world" 0d 0a '$'
22 bytes, of which 15 is the message.