309のリンク先のコードをちょっとだけ変更
@interface Loop : NSObject {
int doLoop;
}
@end

@implementation Loop
-(void)setLoop: (BOOL) flag {
doLoop = flag;
}

-(void)sound:(NSSound *)sound didFinishPlaying:(BOOL)aBool
{
NSLog(@"didFinishPlaying");
if (aBool && doLoop) {
[sound play];
}
}
@end

これでループはするよ。mp3の20秒ぐらいのファイルではできなかったけど、aiffならできた。(MacOS X 10.3.2+xcode 1.1)
mp3でちょっとだけ次のループ時に途切れる。音量コントロールもできないし。