the answer depends on what you meant by "jumping".
the simplest solution, which is also the most complicated solution, is to use a task scheduler to run two "near simultaneous" tasks, one for the pin and one counts the delay. that solution is more generic and depending on your skills can be faster to implement.
another is to use a timer interrupt. let's say that you use a 1s timer interrupt. in the interrupt service routine, you increment an interrupt counter.
in the main code, you have a piece of the code that checks to see if the interrupt counter has reached 30 (indicating that 30 seconds have passed). if that is true, you reset the interrupt counter and flip a pin. this solution is simpler but can be more difficult to implement for you.
---------- Post added at 11:42 PM ---------- Previous post was at 11:09 PM ----------
here is an example of a task scheduler, implemented on C51 - the code can be easily implemented on other platforms as well - I posted one for PIC for example.
in this particular example, the code has four tasks (+ 1 idle process - not implemented in this particular example), each running on 10ms time slots (user configurable). so every 40ms, you run through every task once.
Task0 updates the LCD based on the adc results from Task3, and flips P2.0, once every 8 runs -> 320ms.
Task1 flips P2.2, once every 25 runs -> 25*40ms=1000ms.
Task2 flips P2.6, once every 80 runs -> 80*40ms=3.2 seconds.
Task3 does simulated ADC, once every 6 runs and passes the results to Task0.
the timing chart attached confirms the timing described above.
so this shows you one way of implementing "multiple" delays on any mcu - all it requires is a timer interrupt.