el tipo de borde none es que no define borde, por lo cual lo quitas, y luego se lo pones por eso "brinca"  
prueba con esto: 
 Cita:  	border:1px solid transparent;
    lo que te refieres con los margenes es algo asi..  
 Cita:  .img_boton
{	width:20px;
	height:20px;
	margin:1px;
	vertical-align:bottom;
	float:left;
}
 
 
.img_boton:hover
 
{	width:20px;
	margin:0px;
	height:20px;
	border:1px solid #286FB2;
	background:#AAD6FF;
}
    como vez, te faltava quitarselo cuando esta en hover, ya que es cuando se le agrega el borde.
y segun el box model el borde esta entre el margen y el padding..