@BurtHarris: Actually snap to grid already exists, you just have to change "snap" to "grid" and not "guides" in the bottom right corner, but it becomes very unwieldy when you have different pitches on the X and Y axes, plus requires calculating each time the origin of the grid to match the placement of other components.
And that's if you just have all (or most of) the components aligned to the same grid. If you just have 10 resistors with similar functionalities that you want neatly aligned and equally spaced, fiddling with the grid to achieve it is a major pain.
@zak: would you care explaining why this is so complicated? I may be missing something but since components have their position as properties, aligning and distributing a selection does not seem to be an excessively difficult task. For instance, "align top" requires only finding the maximal y coordinate among the selected components, and applying it to all of them. "distribute horizontally" requires finding the minimal and maximal x coordinate among the selected components, sorting them in respect to x coordinate, and then setting the x coordinate of each component as Xmin + i * (Xmax - Xmin)/(N-1), with i being the index of the component, after sorting by x coordinate, and N being the number of selected components.