Sparkfun's Quadstepmotor driver and different velocity: concurrency problem?
You're right; one call to oneStep needs to complete fully before the other one gets executed.  You can't get concurrency very easily here, since you don't have a multitasking operating system available.  You'll need to think about how to account for the blocking and write your code around that.  State machines usually come in handy here.  For example, you can have a function that counts 100 microseconds at a time, and toggle pin 6 every time, but toggle pin 8 every 6th time.  That would give each motor the timings you wrote in loop() above.
There are lots of ways to write this, depending on how you need things to fit into the rest of your code.  Let's say that you do something like:

while (1) {
    loop();  /* call loop forever */
}


Then maybe:

void loop(void) {
    delayMicroseconds(100);
    updateMotors();
}

void updateMotors(void) {
    static int motorA_count = 0;
    static int motorB_count = 0;

    motorA_count++;
    if (motorA_count == 1) {
        digitalWrite(6, HIGH);
    }
    if (motorA_count == 2) {
        digitalWrite(6, LOW);
        motorA_count = 0;
    }

    motorB_count++;
    if (motorB_count == 6) {
        digitalWrite(8, HIGH);
    }
    if (motorB_count == 12) {
        digitalWrite(8, LOW);
        motorB_count = 0;
    }
}


Here, the updateMotors function is keeping counts of how many 100 microsecond intervals have elapsed, and changing the motors accordingly.