I think your initial assertion is flawed if the tiles are the same weight per unit volume (crudely, thickness but material density also plays a part)..
..but in any case it sounds like you're not tiling properly. Set a batten on the wall at the height of the bottom edge of the first full row, then rest the tiles on it. The next row of tiles rests on the spacers. The adhesive is not responsible for stopping tiles sliding down the wall; that's the batten's job. The adhesive is responsible for stopping them falling away from the wall.
If your tiles aren't rectified you might be better off using wedge spacers as there may be some minor variation in tile heights
* To work out the height of the batten divide the wall height by the tile height, take the remainder plus 1 tile's height and halve this value.
For example a wall 2500 high and a tile 600 high, 2500/600 = 4 remainder 100. A tile's height plus 100 is 700. Half this is 350. Your wall is thus a 350 tile, three 600 tiles then another 350 tile. This looks better than a 50 sliver, four full 600 tiles and a 50 sliver. You set your batten at 350. Remember to cut your tiles at 347 (top tile) for the 3mm grout line at the top and 344 at the bottom (for the 3mm grout lines top and bottom). If you're laying the floor tiles after the wall tiles, set the batten up by the thickness of the floor tile and adhesive