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.