You're probably trying to achieve something like this:
main img {
width:100px;
height:100px;
float:left;
display: block;
padding:20px 75px 55px;
border-bottom:1px solid transparent;
}
main img:hover {
border-bottom:1px solid #666;
}
Notice I added a transparent border-bottom to the image elements in their default state. This occupies the space of the 1px border without it being seen. Then when the user hovers over any given image, the color changes from transparent to #666 with no apparent jumping around. With the code you originally posted, a 1px border-bottom was being created on hover, shifting other elements around in the process.