Edit the file /boot/grub/menu.lst as root with your favourite text editor. Find the section that looks something like this:
title Debian
root (hd0,0)
kernel /vmlinuz-2.6.26-2-686 root=/dev/sda2 ro
initrd /initrd.img-2.6.26-2-686
title Debian (single-user mode)
root (hd0,0)
kernel /vmlinuz-2.6.26-2-686 root=/dev/sda2 ro single
initrd /initrd.img-2.6.26-2-686
Every title corresponds to one entry on the boot menu. To disable an entry, simply comment out the appropriate lines. So to remove the entry in my example above named Debian (single user mode) I would edit the file to look like this:
title Debian
root (hd0,0)
kernel /vmlinuz-2.6.26-2-686 root=/dev/sda2 ro
initrd /initrd.img-2.6.26-2-686
# title Debian (single-user mode)
# root (hd0,0)
# kernel /vmlinuz-2.6.26-2-686 root=/dev/sda2 ro single
# initrd /initrd.img-2.6.26-2-686
Do this for all entries you want hidden from the boot menu. To restore an entry, simply remove the #.
Edit: Only now I realized you were using Grub 2. Sorry about that, the above only applies to Grub 1 (aka Grub Legacy). On the Grub Wiki I found this grub.cfg example config. Interpreting it, you should be able to comment out the appropriate entries much like I showed above.
Editing
menuentry "My Linux Kernel on (hd0,1)" {
set root=(hd0,1)
linux /vmlinuz root=/dev/hda1
initrd /initrd
}
menuentry "Chainload my OS" {
set root=(hd0,3)
chainloader +1
}
into
menuentry "Linux" {
set root=(hd0,1)
linux /vmlinuz root=/dev/hda1
initrd /initrd
}
# menuentry "Other OS" {
# set root=(hd0,3)
# chainloader +1
# }
should work, I think. Be aware that I have no idea if this will work, and might be harmful in some way. Proceed with caution.