El problema con la propiedad Picture es que no se puede ajustar. Muchas veces es necesario cargar las imágenes en tiempo de ejecución y es necesario ajustarlas al tamaño actual del control.
En el caso que no quieras crear un control de usuario (aunque si creas tus propios botones podés hacer que se comporten como quieras) hay otro método mediante código para cambiar la imagen del botón y ajustarla. Existe el mensaje
BM_SETIMAGE que se le puede enviar a los botones de comandos mediante la función
SendMessage.
Lo bueno de este método es que antes de usar SendMessage hay que cargar la imagen con la función
LoadImage y esta función te permite hacerle distintas modificaciones a la imagen, ya sea ponerla en escala de grises, cambiarle el tamaño, etc.
Saludos.