You can use file descriptors in the redirection to the while loop, then have `read` read from the file descriptors.

    #! /bin/bash    
    while true; do
      read data1 <&3
      read data2 <&4
      if [ -z "$data1" -o -z "$data2" ]; then
        break
      fi
      echo "1: "$data1
      echo "2: "$data2
    done 3<file1 4<file2

Not tested much. Might break on empty lines.