How to execute functions simultaneously in this case?

consider


enum { Off = HIGH, On = LOW };

byte pinsLed [] = { 10, 11, 12 };
#define N_LED   sizeof(pinsLed)

byte pinBut = A1;
byte stateBut = HIGH;

unsigned long msecLst;

// -----------------------------------------------------------------------------
void
seqLed (void)
{
    static int  idx = 0;

    digitalWrite (pinsLed [idx], Off);

    idx = (idx+1) % N_LED;
    digitalWrite (pinsLed [idx], On);
}

// -----------------------------------------------------------------------------
#define Timer   100
void loop () {
    // sequence leds every 100 msec
    unsigned long msec = millis ();
    if (msec > msecLst)  {
        msecLst = msec + Timer;
        seqLed ();
    }

    // toggle builtin-led on button press
    byte but = digitalRead (pinBut);
    if (stateBut != but)  {
        stateBut = but;
        delay (10);     // debounce

        if (LOW == but)  {
            Serial.println ("press");
            digitalWrite (LED_BUILTIN, ! digitalRead (LED_BUILTIN));
        }
    }
}

// -----------------------------------------------------------------------------
void setup () {
    Serial.begin (9600);

    pinMode (LED_BUILTIN, OUTPUT);

    for (unsigned n = 0; n < N_LED; n++)  {
        pinMode (pinsLed [n], OUTPUT);
        digitalWrite (pinsLed [n], Off);
    }

    pinMode (pinBut, INPUT_PULLUP);
}