Potresti usare il selettore "+" (che seleziona un fratello adiacente) o altrimenti "~" (che seleziona tutti gli elementi preceduti da un elemento specifico) seguito da nth-child (che seleziona solo i figli specificati)
Riporto un esempio pratico usando entrambi i metodi sull'esempio che hai postato tu:
codice:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css" >
/* METODO 1: seleziona i div.figlio2 che sono fratelli adiacenti di div.figlio1 e, nell'ordine, dei vari div.figlio2
*/
div.figlio1+div.figlio2,
div.figlio1+div.figlio2+div.figlio2,
div.figlio1+div.figlio2+div.figlio2+div.figlio2
{color:red}
/* METODO 2: seleziona qualsiasi div.figlio2 che sia preceduto da un div.figlio1 e che rientri tra i primi 4 figli dell'elemento padre
*/
div.figlio1~div.figlio2:nth-child(-n+4)
{background:yellow}
</style>
</head>
<body>
<div class="padre">
<div class="figlio1">fratello 1</div>
<div class="figlio2">fratello 2</div>
<div class="figlio2">fratello 3</div>
<div class="figlio2">fratello 4</div>
<div class="figlio2">fratello 5</div>
<div class="figlio2">fratello 6</div>
</div>
<hr>
<div class="padre">
<div class="figlio2">fratello 2</div>
<div class="figlio2">fratello 3</div>
<div class="figlio2">fratello 4</div>
<div class="figlio2">fratello 5</div>
<div class="figlio2">fratello 6</div>
</div>
</body>
</html>