Hai tante soluzioni a tua disposizione, tra le più semplici:

1) Potresti creare un thread e metterlo in pausa (Sleep) per 10 minuti dopo ogni invio.

2) Implementi una funzione Delay di questo tipo

codice:
// Codice Delphi facilmente portabile in C
procedure Delay(msecs: Longint);
var
  targettime: Longint;
  Msg: TMsg;
begin
  targettime := GetTickCount + msecs;
  while targettime > GetTickCount do
    if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then
    begin
      if Msg.message = WM_QUIT then
      begin
        PostQuitMessage(Msg.wParam);
        Break;
      end;
      TranslateMessage(Msg);
      DispatchMessage(Msg);
    end;
end;
3) Usi funzioni della Windows API tipo WaitForSingleObject

4) Non scrivi codice e ti affidi a programmi in stile CRON.