Claro que es posible, en el evento
RowDataBound de tu gridview harías algo como esto (el codigo que te doy es en c# pero aplica de igual manera el vb):
Código:
GridViewRow row = e.Row;
Image img = e.Row.FindControl("ImgSemaforo") as Image;
if (row.RowIndex > -1)
{
img.ImageUrl = "~/ColorVerde.png"; //Aqui asignas la imagen dependiendo de lo que necesitas
}
Asi quedaria en html de tu gridview:
Código HTML:
<asp:GridView ID="TuGridView" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Semaforo">
<ItemTemplate>
<asp:Image ID="ImgSemaforo" runat="server" CausesValidation="False" ></asp:Image>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Saludos!