Останавливается, потому что вы инициализируете новый bulleBouge каждые две секунды. Вы также теряете память, так как никогда не освобождаете ее, прежде чем присваиваете ей новое значение. так что получается, что после создания imageView вы сохраняете ссылку только на последний экземпляр, следовательно, только последний меняет позицию. Чтобы исправить это, сохраните все ваши новые uiImageViews в массиве и переместите их случайным образом через две секунды.
-(void) createNewBall {
UIImage * image = [UIImage imageNamed:@"bulle_03.png"];
UIImageView *bulleBouge = [[UIImageView alloc] initWithImage:image];
[bulleBouge setCenter:[self randomPointSquare]];
[bulleBougeArray addObject:bulleBouge];
[[self view] addSubview:bulleBouge];
[bulleBouge release];
}
-(void)moveTheBall{
for(int i=0; i< [bulleBougeArray count];i++){
UIImageView *bulleBouge = [bulleBougeArray objectAtIndex:i];
bulleBouge.center = CGPointMake(imageView.center.x + X, imageView.center.y + Y);
}
}