For anyone interested, you can add and remove an anonymous event handler like this
public class Musician
{
    public void TuneGuitar()
    {
        Metronome metronome = new Metronome();
        EventHandler<EventArgs> handler = null;
        handler = (sender, args) =>
        {
            // Tune guitar
            // ...
            // Unsubscribe from tick event when guitar sound is perfect
            metronome.Tick -= handler;
        };
        // Attach event handler
        metronome.Tick += handler;
    }
}
public class Metronome
{
    event EventHandler<EventArgs> Tick;
}
UPDATE:
In C# 7.0 we have supports for local functions so the TuneGuitar method can now be written as:
public void TuneGuitar()
{
    Metronome metronome = new Metronome();
    void handler(object sender, EventArgs args)
    {
        // Tune guitar
        // ...
        // Unsubscribe from tick event when guitar sound is perfect
        metronome.Tick -= handler;
    };
    // Attach event handler
    metronome.Tick += handler;
}